﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MJD.Transaccional.AccesoDatos.Implementacion.NHibernateMySql;
using MJD.Transaccional.AccesoDatos.Interfaces;

namespace MJD.Transaccional.AccesoDatos.Fabricas
{
    /// <summary>
    /// Fabrica para los dao's que implementan los idao para mysql usando nhibernate
    /// </summary>
    class FabricaDaoNHibernateMySql: FabricaDao
    {
        /// <summary> Metodo que obtiene el dao para las operaciones sobre la entidad aseguradora </summary>
        /// <returns>implmentacion de IDAOAseguradora para el manejador seleccionado</returns>
        public override IDaoAseguradora ObtenerDaoAseguradora()
        {
            return new DaoAseguradora();
        }


        /// <summary> Metodo que obtiene el dao para las operaciones sobre la entidad sucursal </summary>
        /// <returns>implmentacion de IDaoSucursal para el manejador seleccionado</returns>
        public override IDaoSucursal ObtenerDaoSucursal()
        {
            return new DaoSucursal();
        }


        /// <summary> Metodo que obtiene el dao para las operaciones sobre la entidad ciudad </summary>
        /// <returns>implmentacion de IDaoCiudad para el manejador seleccionado</returns>
        public override IDaoCiudad ObtenerDaoCiudad()
        {
            return new DaoCiudad();
        }


        /// <summary> Metodo que obtiene el dao para las operaciones sobre la entidad estado </summary>
        /// <returns>implmentacion de IDaoEstado para el manejador seleccionado</returns>
        public override IDaoEstado ObtenerDaoEstado()
        {
            return new DaoEstado();
        }


        /// <summary> Metodo que obtiene el dao para las operaciones sobre la entidad ramo </summary>
        /// <returns>implmentacion de IDaoRamo para el manejador seleccionado</returns>
        public override IDaoRamo ObtenerDaoRamo()
        {
            return new DaoRamo();
        }


        /// <summary> Metodo que obtiene el dao para las operaciones sobre la entidad causa </summary>
        /// <returns>implmentacion de IDaoCausa para el manejador seleccionado</returns>
        public override IDaoCausa ObtenerDaoCausa()
        {
            return new DaoCausa();
        }
    }
}
